package com.orm_plus;

import com.orm.session.DefaultSqlSessionFactory;
import com.orm.session.SqlSession;
import com.orm.session.SqlSessionFactoryBuilder;
import lombok.extern.slf4j.Slf4j;


/**
 * 根据数据库连接信息 ，使用连接池打开会话连接
 *
 *
 *
 * 现在连接存在2种情况
 *
 * 1.  事务 ，  连接由spring 打开，也由spring 关闭
 *
 * 2. 没有事务，  连接由自身打开 ，自身关闭
 */

@Slf4j
public class SimpleSqlSessionFactory extends DefaultSqlSessionFactory {
	
	// 使用orm自身的builder 解析xml ，省略重复代码 (xml文件不能配错!)
	// 虽然会解析连接信息，但不会使用，而是用自己的数据源打开连接
	public SimpleSqlSessionFactory(String configXmlPath) {
		this.config = new SqlSessionFactoryBuilder().getConfigurationFromXml(configXmlPath);
	}

	// 重写，使用自己的设置进来的数据源
	@Override
	public SqlSession openSession() {
		return new SimpleSqlSession(config, dataSource);
	}
}
